package com.ruoyi.project.bill.domain;

import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import lombok.Data;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import com.baomidou.mybatisplus.annotation.*;

import java.util.List;

/**
 * 单据定义对象 bill_define
 *
 * @author ruoyi
 * @date 2025-07-03
 */
@Data
@ToString
@TableName("bill_define")
public class BillDefine
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    /* type = IdType.ASSIGN_UUID 填充32位UUID */
    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    private String id;

    /** 单据定义名称 */
    @Excel(name = "单据定义名称")
    private String defineName;

    /** 单据定义标识 */
    @Excel(name = "单据定义标识")
    private String defineCode;

    /** 单据类型（单表，主子表） */
    @Excel(name = "单据类型", readConverterExp = "单=表，主子表")
    private String billType;

    /** 关联的主表数据建模（table.col） */
    @Excel(name = "关联的主表数据建模", readConverterExp = "t=able.col")
    private String mainDataModel;

    /** 关联的子表数据建模（table.col） */
    @Excel(name = "关联的子表数据建模", readConverterExp = "t=able.col")
    private String subDataModel;

    /** 单据编号编码规则 */
    @Excel(name = "单据编号编码规则")
    private String billCodeRule;

    /** 动作列表 **/
    @TableField(exist = false)
    private List<BillAction> billActions;

    /** 表单列表 **/
    @TableField(exist = false)
    private List<BillForm> billForms;

    /** 公式列表 **/
    @TableField(exist = false)
    private List<BillFormula> billFormulas;

}
